/**
 * Project Name:fastPlat
 * File Name:DictionaryService.java
 * Package Name:com.fast.user.service.admin
 * Date:2014年12月17日上午11:07:34
 * Copyright (c) 2014, lsflu@126.com All Rights Reserved.
 *
*/

package com.fast.cms.service.system;

import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSONArray;
import com.fast.base.dao.JpaDao;
import com.fast.base.dao.JdbcDao;
import com.fast.cms.model.system.Dictionary;

/**
 * ClassName:DictionaryService <br/>
 * 用途: 数据字典服务 <br/>
 * 开发人员：lushuifa  http://lushuifa.iteye.com/
 * 邮箱:lsflu@126.com
 * @version  
 * @since    JDK 1.6
 * @see
 * Date:     2014年12月17日 上午11:07:34 <br/> 	 
 */
public interface DictionaryService extends JpaDao,JdbcDao {

	/**
	 * 标题：getDicTreeData <br/>
	 * 作用： 得到    <br/>
	 * @author developer-lushuifa
	 * @param parentUUID
	 * @param isRoot 
	 * @return
	 * @since JDK 1.6
	 */
	JSONArray getDicTreeData(String parentUUID, boolean isRoot);

	/**
	 * 标题：getSortId <br/>
	 * 作用：   得到排序ID  <br/>
	 * @author developer-lushuifa
	 * @param parentUUID
	 * @return
	 * @since JDK 1.6
	 */
	int getSortId(String parentUUID);

	/**
	 * 标题：genDicDepth <br/>
	 * 作用：  获取深度   <br/>
	 * @author developer-lushuifa
	 * @param parentUUID
	 * @return
	 * @since JDK 1.6
	 */
	int genDicDepth(String parentUUID);

	/**
	 * 标题：getDicDir <br/>
	 * 作用： 获取字典目录    <br/>
	 * @author developer-lushuifa
	 * @param uuid
	 * @return
	 * @since JDK 1.6
	 */
	String getDicDir(String dir,String uuid);

	/**
	 * 得到树状表格数据
	 * @param parentUUID
	 * @return
	 */
	JSONArray getTreeGridData(String parentUUID);
    
	/**
	 * 取的某分类下的所有值
	 */
	List<Map<String,Object>> getDicTreeList(String parentUUID);
	
	/**
	 * 取的某分类下的所有值
	 */
	List<Map<String,Object>> getDicTreeList(String parentUUID,String fields);

	/**
	 * 通过父类UUID来获取子类列表
	 * @param parentUUID
	 * @return
	 */
	List<Map<String, Object>> getDictionaryListByParentUUID(String parentUUID);

	/**
	 * 获取某个分类下的所有信息包括子类信息
	 * @param parentUUID
	 * @return
	 */
	List<Dictionary> getDicListWithAllChilds(String parentUUID);

	/**
	 * 得到字典数据，主要用于下拉框选择用
	 * 此方法包含子链接数据
	 * @throws Exception
	 */
	List<Map<String, Object>> getDicListWithChildsForSelecter(String parentUUID);

	/**
	 * 保存与修改数据
	 * @param dictionary
	 * @return
	 */
	Dictionary saveOrUpdateDictionary(Dictionary dictionary);

}

